<?php
/**
 * Carencia
 * @author benrainir
 * Classe para gerenciar a entidade Carencia
 */
class Carencia extends BaseModel
{
	protected $carenciaid;
	protected $data ;
	protected $lotacaoid ;
	protected $cargoid ;
	protected $vagaid ;
	protected $ativa ;
	protected $operadorid;
	
    const tablename = "carencia";
    const tablekey = "carenciaid";
    const tablesequence = "carencia_carenciaid_seq";
    
    /**
     * @return Cargo
     */
    public function getCargo(){
    	return new Cargo($this->cargoid);
    }
    
   	/**
     *  @return Vaga
     */
    public function getVaga(){
    	return new Vaga($this->vagaid);
    }
    
    /**
     * @return Lotacao 
     */
    public function getLotacao(){
    	return new Lotacao($this->lotacaoid);
    }
    
    /** 
     * @return Operador
     */
    public function getOperador(){
    	return new Operador($this->operadorid);
    }
    
    /**
     * Retorna o historico da carencia mais atual
     * @return CarenciaHistorico
     */
    public function getCarenciaHistoricoAtual(){
    	$carenciaHist = new CarenciaHistorico();
    	return $carenciaHist->getHistoricoAtual($this->carenciaid);
    }
    
    public function inserirHistorico($statusid, $parecer)
    {
        if (!$this->getTableKeyValue()) {
            throw new Exception('Carência inválida: nenhum ID encontrado.');
        }
        
        global $usuario;
        
        $carenciaHistorico = new CarenciaHistorico();
		$carenciaHistorico->carenciaid = $this->carenciaid;
		$carenciaHistorico->dataregistro = date('Y-m-d H:i:s');
		$carenciaHistorico->observacao =  $parecer;
		$carenciaHistorico->statusid = $statusid;
		$carenciaHistorico->operadorid = $usuario->operadorid;	
		$carenciaHistorico->salvar();
    }
}
?>